package com.examsystem.service;


import com.examsystem.pojo.Paper;
import com.examsystem.pojo.vo.PaperVo;
import com.examsystem.pojo.vo.Result;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface PaperService {

    /**根据userId生成Paper
     * @param userId userId
     * @return 返回用户的所有试卷
     */
    List<Paper> queryPaperByUserId(int userId);

    /**查询所有的paper
     * @return 返回所有的paper
     */
    List<Paper> queryPaperAll();

    /**根据paperId来返回paper
     * @param id id
     * @return 返回paper
     */
    Paper queryPaperById(int id);

    /**
     * 查找所有的试卷【这个返回的是试卷的名称跟id，当用户点击id采取进去查看该试卷的所有试题】
     * @param pageNum 开始的页码
     * @return  paperId以及其相对应的paperName
     */
    PageInfo<Paper> showAllPaper(int pageNum);

    /**
     * 点击进去之后就会直接显示所有的试卷试题信息
     * @param paperId  试卷id
     * @return  整张试卷的试题
     */
    List<Paper> showPaperDetails(int paperId);


    /*
     *教师端
     */

    /**
     * 创建新的试卷
     * @param paperTeacher 教师id
     * @param paperName 试卷名
     * @param questionIds 试题id
     * @param choice 选择【1：代表手动出卷  2：代表自动出卷】
     * @param number 【自动出卷时，选择出题的个数】
     * @return  1：创建新试卷成功  0：创建失败
     */
    int newPaper(String paperName,int paperTeacher, List<Integer> questionIds,int choice,int number);

    /**
     * 显示该试卷的所有试题
     * @param paperId  试卷id
     * @return  paper对象
     */
    PaperVo showOnePaper(int paperId);

    /**
     * 手动交卷
     * @param paperId  试卷id
     * @param studentId  学生id
     * @param classId 班级id
     * @return result结果集
     */
    Result putInPaper(int paperId, int studentId, int classId);


}
